package client.dao;

import client.pojo.User;
import util.JDBCUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class UserDao {
    /**
     * 更新订单状态
     *
     * @param user 用户对象
     * @return
     */
    public boolean updateState(User user) {
        try {
            // 获取数据库连接
            Connection connection = JDBCUtils.getConnection();
            // 更新用户状态操作
            String sql = "update user set state=? where userName=?";
            // 预处理
            PreparedStatement ps = connection.prepareStatement(sql);
            // 传参
            ps.setInt(1, user.getState());
            ps.setString(2, user.getUserName());
            // 执行
            ps.executeUpdate();
            // 关闭资源
            JDBCUtils.closeResource(connection, ps);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    public boolean updateAllUser() {
        try {
            // 获取数据库连接
            Connection connection = JDBCUtils.getConnection();
            // 更新用户状态操作
            String sql = "update user set state=0";
            // 预处理
            PreparedStatement ps = connection.prepareStatement(sql);
            // 执行
            ps.executeUpdate();
            // 关闭资源
            JDBCUtils.closeResource(connection, ps);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 添加用户
     * @param user 用户对象
     * @return
     */
    public boolean addUser(User user){
        try {
            // 获取数据库连接
            Connection connection = JDBCUtils.getConnection();
            // 添加一个新用户的操作
            String sql = "insert into user values(?,?,?)";
            // 预处理
            PreparedStatement ps = connection.prepareStatement(sql);
            // 传参
            ps.setInt(1, user.getUserId());
            ps.setString(2,user.getUserName());
            ps.setInt(3,1);
            // 执行
            ps.executeUpdate();
            // 关闭资源
            JDBCUtils.closeResource(connection,ps);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    /**
     * 检查用户是否已经存在
     * @param user 用户对象
     * @return
     */
    public User checkUser(User user){
        User users = null;
        try {
            // 获取数据库连接
            Connection connection = JDBCUtils.getConnection();
            // 判断用户是否存在的操作
            String sql = "select * from user where userName=?";
            // 预处理
            PreparedStatement ps = connection.prepareStatement(sql);
            // 传参
            ps.setString(1,user.getUserName());
            // 执行
            ResultSet rs = ps.executeQuery();
            // 获取查询到的用户对象
            while (rs.next()){
                users = new User(rs.getInt("userId"),rs.getString("userName"),rs.getInt("state"));
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return users;
    }
}
